package cn.stylefeng.guns.modular.storeProcurement.controller;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;

import cn.stylefeng.guns.modular.hx.basic.entity.HxBasicGoods;
import cn.stylefeng.guns.modular.hx.basic.service.HxBasicGoodsService;
import cn.stylefeng.guns.modular.storeProcurement.entity.StoreProcurementDetaild;
import cn.stylefeng.guns.modular.storeProcurement.model.params.StoreProcurementDetaildParam;
import cn.stylefeng.guns.modular.storeProcurement.service.StoreProcurementDetaildService;
import cn.stylefeng.roses.core.base.controller.BaseController;
import cn.stylefeng.roses.core.reqres.response.ResponseData;
import cn.stylefeng.guns.sys.modular.system.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.math.BigDecimal;


/**
 * 门店采购单明细表控制器
 *
 * @author wp
 * @Date 2025-09-02 10:19:26
 */
@Controller
@RequestMapping("/storeProcurementDetailed")
public class StoreProcurementDetaildController extends BaseController {

    private String PREFIX = "/storeProcurementDetailed";

    @Autowired
    private StoreProcurementDetaildService storeProcurementDetaildService;

    @Autowired
    private UserService userService;

    @Autowired
    private HxBasicGoodsService hxBasicGoodsService;


    /**
     * 跳转到主页面
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "/storeProcurementDetaild.html";
    }

    /**
     * 新增页面
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("/add")
    public String add(@RequestParam("orderOutNumber") String orderOutNumber, Model model) {
        model.addAttribute("orderOutNumber", orderOutNumber);
        return PREFIX + "/storeProcurementDetaild_add.html";
    }

    /**
     * 编辑页面
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("/edit")
    public String edit(@RequestParam("id") String id, Model model) {
        return PREFIX + "/storeProcurementDetaild_edit.html";
    }

    /**
     * 新增接口
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("/addItem")
    @ResponseBody
    public ResponseData addItem(StoreProcurementDetaildParam storeProcurementDetaildParam) {
        this.storeProcurementDetaildService.add(storeProcurementDetaildParam);
        return ResponseData.success();
    }

    /**
     * 编辑接口
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("/editItem")
    @ResponseBody
    public ResponseData editItem(StoreProcurementDetaildParam storeProcurementDetaildParam) {

        String goodsName = storeProcurementDetaildParam.getGoodsName();
        //解决参数中的 英文括号
        if (goodsName!=null&&goodsName!="") {
            goodsName = goodsName.replace("& #40;", "(");
            goodsName = goodsName.replace("& #41;", ")");
            storeProcurementDetaildParam.setGoodsName(goodsName);
        }
        //根据商品ID获取商品信息
        HxBasicGoods basicGoods = hxBasicGoodsService.getById(storeProcurementDetaildParam.getGoodsId());
        storeProcurementDetaildParam.setJibenUnit(basicGoods.getJibenUnit());
        storeProcurementDetaildParam.setJibenNum(new BigDecimal(storeProcurementDetaildParam.getRate()).multiply(new BigDecimal(storeProcurementDetaildParam.getPsNum())).toString());

        this.storeProcurementDetaildService.update(storeProcurementDetaildParam);
        return ResponseData.success();
    }

    /**
     * 删除接口
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("/delete")
    @ResponseBody
    public ResponseData delete(StoreProcurementDetaildParam storeProcurementDetaildParam) {
        this.storeProcurementDetaildService.delete(storeProcurementDetaildParam);
        return ResponseData.success();
    }

    /**
     * 查看详情接口
     *
     * @author wp
     * @Date 2025-09-02
     */
    @RequestMapping("/detail")
    @ResponseBody
    public ResponseData detail(StoreProcurementDetaildParam storeProcurementDetaildParam) {
        StoreProcurementDetaild detail = this.storeProcurementDetaildService.getById(storeProcurementDetaildParam.getId());
        return ResponseData.success(detail);
    }

    /**
     * 查询列表
     *
     * @author wp
     * @Date 2025-09-02
     */
    @ResponseBody
    @RequestMapping("/list")
    public LayuiPageInfo list(StoreProcurementDetaildParam storeProcurementDetaildParam,String condition ) {
        return this.storeProcurementDetaildService.findPageBySpec(storeProcurementDetaildParam,condition);
    }

}


